@echo off
chcp 65001 >nul
cd /d "%~dp0"

echo ========================================
echo     浮动覆盖层问题诊断工具
echo ========================================
echo.

echo [1/7] 检查当前目录...
echo 当前路径: %CD%
if not exist "main.js" (
    echo [❌ ERROR] main.js 文件不存在！
    echo 请确保您在 floating_overlay 目录下运行此脚本
    pause
    exit /b 1
) else (
    echo [✅ OK] main.js 文件存在
)

echo.
echo [2/7] 检查 Node.js 环境...
node --version >nul 2>&1
if %errorLevel% neq 0 (
    echo [❌ ERROR] Node.js 未安装或不在 PATH 中
    echo 请从 https://nodejs.org/ 下载并安装 Node.js
    pause
    exit /b 1
) else (
    for /f "tokens=*" %%i in ('node --version') do (
        echo [✅ OK] Node.js 版本: %%i
    )
)

echo.
echo [3/7] 检查依赖安装...
if not exist "node_modules" (
    echo [❌ ERROR] node_modules 目录不存在
    echo 请运行 install_overlay.bat 安装依赖
    pause
    exit /b 1
) else (
    echo [✅ OK] node_modules 目录存在
)

echo.
echo [4/7] 检查 Electron 安装...
if not exist "node_modules\electron" (
    echo [❌ ERROR] Electron 未安装
    echo 正在尝试安装 Electron...
    npm install electron
    if %errorLevel% neq 0 (
        echo [❌ ERROR] Electron 安装失败
        pause
        exit /b 1
    )
) else (
    echo [✅ OK] Electron 已安装
)

echo.
echo [5/7] 检查运行中的进程...
tasklist | find "electron.exe" >nul 2>&1
if %errorLevel% equ 0 (
    echo [⚠️ WARNING] 发现已运行的 electron.exe 进程
    echo 现有的 Electron 进程可能导致冲突
    tasklist | find "electron.exe"
    echo.
    echo 是否要终止现有进程? (y/n)
    set /p choice="输入选择: "
    if /i "%choice%"=="y" (
        taskkill /f /im electron.exe >nul 2>&1
        echo [✅ OK] 已终止现有 Electron 进程
    )
) else (
    echo [✅ OK] 没有冲突的 Electron 进程
)

echo.
echo [6/7] 检查窗口注册表设置...
:: 检查是否有 Windows 10/11 的显示设置问题
echo [INFO] 系统显示设置检查...
for /f "tokens=2 delims==" %%i in ('wmic os get version /value ^| find "Version"') do set winver=%%i
echo 系统版本: %winver%

echo.
echo [7/7] 测试启动 Electron...
echo [INFO] 正在测试 Electron 启动...
echo [INFO] 如果窗口没有显示，请检查任务栏或使用 Alt+Tab
echo [INFO] 按 Ctrl+C 可以停止测试
echo.

echo 3秒后开始测试...
timeout /t 3 >nul

:: 创建测试启动
echo [TEST] 启动 Electron（测试模式）...
start /wait cmd /c "npx electron . --no-sandbox --disable-web-security --enable-logging 2>&1 | tee overlay_test.log"

echo.
echo [INFO] 测试完成，检查结果...

if exist "overlay_test.log" (
    echo.
    echo ========================================
    echo           测试日志输出
    echo ========================================
    type overlay_test.log
    echo ========================================
    echo.
) else (
    echo [⚠️ WARNING] 没有生成测试日志文件
)

echo.
echo [INFO] 诊断完成！
echo.
echo 如果窗口仍然不显示，可能的原因：
echo 1. 窗口被创建在屏幕外（尝试 Win+D 显示桌面）
echo 2. 窗口透明度过高（检查 main.js 中的 opacity 设置）
echo 3. 窗口被其他程序遮挡（检查任务栏）
echo 4. 显卡驱动或Windows显示设置问题
echo 5. 防火墙或安全软件阻止了 Electron
echo.
echo 尝试解决方案：
echo 1. 运行 debug_start.bat 进入调试模式
echo 2. 检查 Windows 显示设置（缩放、多显示器）
echo 3. 重启计算机后重试
echo 4. 以管理员身份运行
echo.
echo 按任意键退出...
pause >nul
